package NewCode;

import java.util.ArrayList;
import java.util.Scanner;

/**
 * \* Created with IntelliJ IDEA.
 * \* User: Administrator
 * \* Date: 2022/5/19
 * \* Time: 14:46
 * \* To change this template use File | Settings | File Templates.
 * \* Description:
 * \
 */
public class test1 {

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        StringBuffer a = new StringBuffer();
        for(int i=0;i<str.length();i++){
            if((str.charAt(i)>='a'&&str.charAt(i)<='z')||(str.charAt(i)>='A'&&str.charAt(i)<='Z')){
                a.append(str.charAt(i));
            }else{
                a.append(" ");
            }
        }
        str = a.toString();
        String[] arr = str.trim().split(" ");
        StringBuffer sb = new StringBuffer();
        for(int i=arr.length-1;i>=1;i--){
            if(!arr[i].equals(" ")){
                sb.append(arr[i]);
                sb.append(" ");
            }
        }
        if(!arr[0].equals(" ")){
            sb.append(arr[0]);
        }
        System.out.println(sb.toString());
    }



//    public static void main(String[] args) {
//        Scanner sc = new Scanner(System.in);
//        while(sc.hasNext()){
//            String str = sc.nextLine();
//            String[] words=str.split("_");
//            String result = words[0];
//            for(int i = 1;i < words.length;i++){
//                result += (char)(words[i].charAt(0) - 32);
//                for(int j = 1;j < words[i].length();j++){
//                    result += words[i].charAt(j);
//                }
//            }
//            System.out.println(result);
//        }
//    }
//}




//    public static void main(String[] args){
//        Scanner sc = new Scanner(System.in);
//        int n,m;
//        while(sc.hasNext()){
//            n = sc.nextInt();
//            m = sc.nextInt();
//            ArrayList<Integer> arr = new ArrayList();
//            int curSum = 0;
//            getSum(arr,1,curSum,n,m);
//        }
//    }
//
//    public static void getSum(ArrayList<Integer> arr, int pos, int curSum, int n , int dest){
//        //判断当前和是否大于等于dest
//        if(curSum >= dest){
//            //判断当前和是否正好等于dest
//            //一个新的组合
//            if(curSum == dest){
//                for(int i = 0; i < arr.size() - 1; i++){
//                    System.out.print(arr.get(i) + " ");
//                }
//                System.out.println(arr.get(arr.size() - 1));
//            }
//            return;
//        }
//        //继续累加,从小到大累加
//        for(int i = pos; i <= n; i++){
//            //保存当前数据
//            arr.add(i);
//            getSum(arr,i+ 1, curSum + i,n,dest);
//            //尝试累加其他数据，删除当前数据
//            arr.remove(arr.size() - 1);
//        }
//    }



//    public static void main(String[] args){
//        //循环输入处理多组用力
//        Scanner sc = new Scanner(System.in);
//        while(sc.hasNext()){
//            StringBuffer s1 = new StringBuffer(sc.next());
//            StringBuffer s2 = new StringBuffer(sc.next());
//            int len1 = sc.nextInt();
//            int len2 = sc.nextInt();
//
//            //将s1和s2补齐到len2
//            //注意，s1之后补‘a'，s2之后补 ’z'+1
//            for(int i =s1.length(); i < len2; ++i){
//                s1.append('a');
//            }
//            for(int i = s2.length(); i < len2; ++i){
//                s2.append('z'+1);
//            }
//
//            //将s1 和s2对应位置上的字符相减并保存相减的结果
//            int[] array = new int[len2];
//            for(int i =0; i < len2 ;++i){
//                array[i] = s2.charAt(i) - s1.charAt(i);
//            }
//
//            //计算结果
//            long result = 0;
//            for(int i = len1; i <= len2; ++i){
//                for(int j = 0; j < i ; ++j){
//                    result += array[j]* Math.pow(26,i-j-1);
//                }
//            }
//
//            System.out.println((result - 1) % 1000007);
//        }
//    }
}
